package com.smedi.ismedi.progress.core.domain.aggregatemodel;

import com.smedi.ismedi.progress.api.dto.response.FileResponse;
import com.smedi.ismedi.progress.core.infrastructure.constant.ConstantField;
import com.smedi.ismedi.progress.core.port.adapter.persistence.model.VersionManageEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

/**
 * @auther liaojiajie
 * @date 2022/9/20
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class Progress {
    /**
     * 主表id
     */
    private Long id;
    /**
     * 项目id
     */
    private Long	projectId;
    /**
     * 计划名称
     */
    private String	scheduleName;
    /**
     * 编制人
     */
    private String	compilePerson;
    /**
     * 项目名称
     */
    private String	name;
    /**
     * 工程类别
     */
    private String	engineerType;

    /**
     * 主体院
     */
    private String	mainCourtyard;

    /**
     * 工程状态
     */
    private String engineerStatus;
    /**
     * 项目经理
     */
    private String	generalManager;
    /**
     * 施工经理
     */
    private String	constructManager;
    /**
     * 提交时间
     */
    private LocalDateTime	submitTime;
    /**
     * 计划开始时间
     */
    private LocalDateTime	scheduleStartTime;
    /**
     * 计划完成时间
     */
    private LocalDateTime	scheduleEndTime;
    /**
     * 实际开始时间
     */
    private LocalDateTime	realStartTime;
    /**
     * 实际完成时间
     */
    private LocalDateTime	realEndTime;
    /**
     * 进度状态(0、滞后  1、正常)
     */
    private Integer	progressStatus;
    /**
     * 主体院审批(0、已退回 1、待审批 2、审批通过)
     */
    private Long mainCourtyardApproval;
    /**
     * 工程部审批(0、已退回 1、待审批 2、审批通过)
     */
    private Long engineerDepartmentApproval;
    /**
     * 版本状态(0、无效  1、有效)
     */
    private Long status;
    /**
     * 创建人id
     */
    private Long createdUserId;
    /**
     * 版本号
     */
    private Long version;
    /**
     * 滞后时长
     */
    private Integer	lagTime;
    /**
     * 审批不同意原因
     */
    private String	reason;

    /**
     * 负责人
     */
    private String	responsiblePerson;
    /**
     * 里程碑数量
     */
    private Integer	milestoneNums;
    /**
     * 关键任务数量
     */
    private Integer	keyTaskNums;
    /**
     * 完成百分比
     */
    private String	percentage;
    /**
     * 里程碑进度状态(0、滞后  1、正常)
     */
    private Integer	milestoneProgressStatus;
    /**
     * 关键任务进度状态(0、滞后  1、正常)
     */
    private Integer	taskProgressStatus;
    /**
     * 项目
     */
    private Project	project;
    /**
     * 申报人/发起人
     */
    private Person applicant;
    /**
     * 更新人id
     */
    private Long latestUpdatedUserId;
    /**
     * 更新人时间
     */
    private LocalDateTime latestUpdatedDate;
    /**
     * 照片文件信息
     */
    private List<FileResponse> photoFile;

    /**
     * 任务状态
     */
    private String taskStatus;

    /**
     * 任务标识
     */
    private String taskKey;

    private String hrOrganizationFullName;

    private Long versionId;

    List<Long> constructionMember;
}
